﻿using System.Collections.Generic;

namespace BLL.Services.Responses
{
    public interface IResponsesService
    {
        /// <summary>
        /// Gets the response by id.
        /// </summary>
        /// <param name="responseId">The response id.</param>
        Response GetResponseById(int responseId);

        /// <summary>
        /// Creates the specified response.
        /// </summary>
        /// <param name="response">The response.</param>
        void Create(Response response);

        /// <summary>
        /// Saves the specified response.
        /// </summary>
        /// <param name="response">The response.</param>
        void Save(Response response);

        /// <summary>
        /// Deletes the specified response id.
        /// </summary>
        /// <param name="responseId">The response id.</param>
        void Delete(int responseId);

        /// <summary>
        /// Gets the listing response.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="size">The size.</param>
        /// <param name="column">The column.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="filter">The filter.</param>
        Listing.ResponsesListing GetListingResponse(int page, int size, string column, int direction, Listing.ResponseFilter filter);

        /// <summary>
        /// Gets the response by book.
        /// </summary>
        /// <param name="bookId">The book id.</param>
        IEnumerable<BookResponse> GetResponseByBook(int bookId);
    }
}